package cn.wzb.hrm.web.controller;

import cn.wzb.hrm.util.AjaxResult;
import cn.wzb.hrm.utils.RedisUtils;
import org.springframework.web.bind.annotation.*;

//操作Redis的api接口
@RestController
public class RedisController {
    /**
     *
     * @PathVariable("key") String key :
     *              从url上面去获取一个参数 ，如："/redis/get/{key}" ， 浏览器访问：  /redis/get/111
     *
     * @RequestBody User user : 是从请求体中获取数据，一般是把一个json格式的数据，转成对象
     *              浏览器访问： body { id:1 ,username:zs,age:11}
     *
     * @RequestParam("key") : 是从请求中获取一次名字为 “key”的参数
     */
    //保存值    @RequestParam-->从请求参数中获取名字为key的数据
    @RequestMapping(value = "/redis/set",method = RequestMethod.POST)
    public AjaxResult setString(@RequestParam("key") String key , @RequestParam("value")String value){
        RedisUtils.INSTANCE.set(key,value);
        return AjaxResult.me();
    }

    //获取值  @PathVariable:从url中获取参数
    @RequestMapping(value = "/redis/get/{key}",method = RequestMethod.GET)
    public AjaxResult getString(@PathVariable("key") String key){
        String result = RedisUtils.INSTANCE.get(key);
        return AjaxResult.me().setResultObj(result);
    }

    //添加带有过期时间
    @RequestMapping(value = "/redis/setex",method = RequestMethod.POST)
    public AjaxResult setex(@RequestParam("key") String key ,
                            @RequestParam("seconds")int seconds,
                            @RequestParam("value")String value){
        RedisUtils.INSTANCE.setex(key,seconds,value);
        return AjaxResult.me();
    }
}
